package com.niuwa.p2p.service.role;

import java.util.List;
import java.util.Map;

import com.niuwa.p2p.core.mvc.entity.JsonResult;
import com.niuwa.p2p.core.mvc.entity.PageBean;
import com.niuwa.p2p.entity.role.Role;

public interface RoleService {
	/**
	 * 新增角色
	 * @param role
	 * @return
	 * @throws Exception
	 */
	public JsonResult saveRole(Role role);

	/**
	 * 修改角色
	 * @param role
	 * @return
	 */
	public JsonResult updateRole(Role role);

	/**
	 * 修改角色
	 * @param role
	 * @return
	 */
	public JsonResult editRole(Role role);
	
	/**
	 * 获取符合条件的角色列表
	 * @return
	 */
	public PageBean<Role> search(Map<String, Object> paramMap);

	/**
	 * 根据主键Id获取角色信息
	 * @param id
	 * @return
	 */
	public Role getRoleById(long id);
	
	/**
	 * 判断角色名称是否已经存在
	 * @param role
	 * @return
	 * @throws Exception
	 */
	public JsonResult checkRoleNameIsExists(String roleName);
	
	/**
	 * 更改角色状态
	 * @param role
	 * @return
	 */
	public JsonResult changeRoleStatus(Integer roleId);
	
	/**
	 * 根据主键Id删除角色 
	 * @param id
	 * @return
	 * 	 */
	public void deleteRoleById(Integer roleId);

	
	
	/**
	 * 查询全部的角色
	 * @return
	 */
	public List<Role>  searchAllRoles();
	
	
	/**
	 * 
	 *根据用户名查询对应角色
	 *@param loginName
	 *@return List<Role>
	 *
	 */
	public List<Role> searchRolesByloginName(String loginName);
	
	
	/**
	 * 判断角色名称是否已经存在
	 * @param role
	 * @return
	 */
	public List<Role> searchRoleByName(Role role);
	
	
	/**
	 * 
	 *新增角色
	 * @param role
	 *
	 */
	public void addRole(Role role,Long userId);
	
	/**
	 * 
	 *修改角色
	 * @param role
	 * @param userId
	 *
	 */
	
   public  void	updateRole(Role role,Integer roleId);
   
   
   /**
    * 
    *为用户授予角色
    * @param roleParamMap
    *
    */
   public void updateUserRole(Integer userId,String[] roleIdArr);

}
